package com.itheima.reggie;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.UUID;

@SpringBootTest
@RunWith(SpringRunner.class)
public class OssUtil {
    // Endpoint以杭州为例，其它Region请按实际情况填写。
    static String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
    // 阿里云主账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录RAM控制台创建RAM账号。
    static String accessKeyId = "LTAI5tAi7hDjapjc4s3xRAsK";
    static String accessKeySecret = "R2pQSzj6yqY6l1uEvm8j5PGuHk3b8h";
    static String bucketName = "anti-nanjing";

    @Test
    public void upload() {
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        String path = "C:/Users/ST/Pictures/Saved Pictures/英雄联盟皮肤拉克丝4.jpg";
        String originalFilename = path.substring(path.lastIndexOf('/') + 1);
        String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));

        //使用UUID重新生成文件名，防止文件名称重复造成文件覆盖
        String fileName = UUID.randomUUID().toString() + suffix;//dfsdfdfd.jpg
        // 上传文件流。
        InputStream inputStream = null;
        try {
            inputStream = new FileInputStream(path);
        } catch (FileNotFoundException e) {
            System.out.println(e.getMessage());
        }

        ossClient.putObject(bucketName, "images/"+fileName, inputStream);

        // 关闭OSSClient。
        ossClient.shutdown();
    }
}
